package org.nstack.kvm;

import org.nstack.header.errorcode.ErrorCode;
import org.nstack.header.vm.VmInstanceInventory;
import org.nstack.header.volume.VolumeInventory;
import org.nstack.kvm.KVMAgentCommands.DetachDataVolumeCmd;


public interface KVMDetachVolumeExtensionPoint {
    void beforeDetachVolume(KVMHostInventory host, VmInstanceInventory vm, VolumeInventory volume, DetachDataVolumeCmd cmd);

    void afterDetachVolume(KVMHostInventory host, VmInstanceInventory vm, VolumeInventory volume, DetachDataVolumeCmd cmd);

    void detachVolumeFailed(KVMHostInventory host, VmInstanceInventory vm, VolumeInventory volume, DetachDataVolumeCmd cmd, ErrorCode err);
}
